// cargo发包
// release profile：预定义的，可定义可使用不同的配置，对代码编译拥有更多的控制
// 每个profile的配置都独立于其他的profile
// cargo有两个主要的profile
// dev profile：开发用cargo build
// release profile：发布用cargo build --release
// 自定义profile
// 在cargo.toml里面添加[profile.XXXX]区域，在里面覆盖默认配置的子集

// 发布crate到crates.io
// 文档注释
// cargo doc --open命令生成文档并打开html文档(运行rustdoc工具rust自带的),文档在target/doc

// pub use导出方便使用的公共api
// A::B::C::D::E; 比较麻烦
// pub use A::B::C::D::E; 比较发方便
// use A::E;

// 创建crates.io账号获取token
// 运行cargo login [token]
// cargo.toml的package下添加对应的字段
// cargo publish发布
// 在crates.io验证邮箱
// cargo yank从crates.io撤回某些版本
// cargo yank --vers 1.0.1
// 取消某个版本的撤回cargo yank --vers 1.0.1 --undo

// cargo工作空间
// cargo.toml [workspaces]类似monorepo
// 依赖库之间的相互依赖：在单个依赖库中的cargo.toml设置例如下
// [dependencies]
// add_one = {path = "../add_one"}

// 安装二进制ctate
// cargo install：只能安装二进制目标的carte，拥有src/main.rs或其他被指定为二进制的文件

// 自定义cargo命令：在$path中的某个二进制是cargo-something那么就能运行cargo something

fn main() {
    println!("hello world！");
}